/**
 * 表单相关操作
 */
export default class FormUtils {
    
    /** 校验用户名正则表达式 */
    static PATTERN_USERNAME = /^[\w\u4e00-\u9fa5]{2,6}$/;
    /** 校验密码的正则表达式 */
    static PATTERN_PASSWORD = /^\w{5,12}$/;
    /** 校验邮箱的正则表达式 */
    static PATTERN_EMAIL = /^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/;
    
    /**
     * 校验用户名
     * @param {string} username 用户名
     * @returns {{ validated: boolean, message: string }} { validated: 是否校验通过, message: 校验结果信息 }
     */
    static validateUsername(username = '') {
        username = username.trim();
        if (username.length === 0) {
            return { validated: false, message: '用户名不能为空！' };
        }
        if (!FormUtils.PATTERN_USERNAME.test(username)) {
            return { validated: false, message: '用户名不合法！' };
        }
        return { validated: true, message: '校验通过' };
    }
    
    /**
     * 校验密码
     * @param {string} password 密码
     * @returns {{ validated: boolean, message: string }} { validated: 是否校验通过, message: 校验结果信息 }
     */
    static validatePassword(password = '') {
		password = password.trim();
        if (password.length === 0) {
            return { validated: false, message: '密码不能为空！' };
        } 
        if (!FormUtils.PATTERN_PASSWORD.test(password)) {
            return { validated: false, message: '密码不合法！' };
        }
        return { validated: true, message: '校验通过' };
    }

    /**
     * 校验邮箱
     * @param {string} email 邮箱
     * @returns {{ validated: boolean, message: string }} { validated: 是否校验通过, message: 校验结果信息 }
     */
    static validateEmail(email = '') {
        email = email.trim();
        if (email.length === 0) {
            return { validated: false, message: '邮箱不能为空！' };
        } else if (!FormUtils.PATTERN_EMAIL.test(email)) {
            return { validated: false, message: '邮箱不合法！' };
        }
        return { validated: true, message: '校验通过' };
    }

    /**
     * 校验验证码
     * @param {string} code 验证码
     * @returns {{ validated: boolean, message: string }} { validated: 是否校验通过, message: 校验结果信息 }
     */
    static validateCaptcha(code = '') {
        code = code.trim();
        if (code.length === 0) {
            return { validated: false, message: '验证码不能为空！' };
        }
        return { validated: true, message: '校验通过' };
    }
}